package com.obrempon.credit.market.ui.activity

import android.view.View
import com.obrempon.credit.market.base.app.ObremponActivityStackManager
import com.obrempon.credit.market.databinding.ObremponLaunchActBinding
import com.obrempon.credit.market.event.ObremponEventPointType
import com.obrempon.credit.market.httptest.HttpAct
import com.obrempon.credit.market.httptest.api.LaunchApi
import com.obrempon.credit.market.request.IHttpCallback
import com.obrempon.credit.market.utils.ObremponTitleBarUtil
import com.obrempon.credit.market.utils.helper.ObremponConfigsHelper
import com.obrempon.credit.market.utils.helper.TestDataLibInit
import com.obrempon.credit.market.utils.helper.ObremponAnalysisHelper
import com.obrempon.credit.market.utils.shared.ObremponSharedHelper
import com.obrempon.credit.market.utils.shared.ObremponSharedKey
import org.json.JSONObject
import java.util.TimeZone

/**
 * ObremponCredit
 * @Author wwdeng
 * @CreateTime: 2024/12/5 20:18
 * @Annotation：
 */
class ObremponLaunchAct: HttpAct() {
    lateinit var binding: ObremponLaunchActBinding

    override fun takeObremponRootView(): View? {
        binding = ObremponLaunchActBinding.inflate(layoutInflater)
        return binding.root
    }

    override fun initObremponView() {
        ObremponTitleBarUtil.setStatusBarLightMode(this, false)
        isInterceptBack(true)
        //关闭所有页面
        ObremponActivityStackManager.finishAllActivity(ObremponLaunchAct::class.java)
        //启动需要重置审核中、放款中显示的公告提示次数
        ObremponSharedHelper.addObremponSharedData(ObremponSharedKey.OBREMPON_DIALOG_NOTICE_NUM,0)
    }

    override fun initObremponListener() {
        binding.textAppName.setOnClickListener {
            loadObremponLaunchTimeZoneAction()
        }
    }

    override fun takeObremponData() {
//        launch(Dispatchers.Main){
//            delay(1000)
//        }
        loadObremponLaunchTimeZoneAction()
    }

    /**
     * 时区转发成功
     */
    fun showObremponTimeZoneRequestData(data: String) {
        var timeZone = ""
        var zoneCode = ""
        var zoneCountry = ""

        data.split(",").apply {
            if (this.isNotEmpty()){
                timeZone = this[0].trim()
            }
            if (this.size >= 2){
                zoneCode = this[1].trim()
            }
            if (this.size >= 3){
                zoneCountry = this[2].trim()
            }
        }

        //保存时区id
        ObremponSharedHelper.addObremponSharedData(ObremponSharedKey.OBREMPON_TIMEZONE_ID, TimeZone.getDefault().id)
        //保存转发路径
        ObremponSharedHelper.addObremponSharedData(ObremponSharedKey.OBREMPON_TIMEZONE,timeZone)
        //保存转发地区 区号
        ObremponSharedHelper.addObremponSharedData(ObremponSharedKey.OBREMPON_TIMEZONE_CODE,zoneCode)
        //保存国家标识
        ObremponSharedHelper.addObremponSharedData(ObremponSharedKey.OBREMPON_TIMEZONE_COUNTRY,zoneCountry)

        //初始化analysis lib 赋值 转发地区
        ObremponAnalysisHelper.initAnalysisLibAtZoneSuccess()
        //初始化 data lib
        TestDataLibInit.initDataLibAtZoneSuccess()
        //添加埋点
        doEventTrackAction(ObremponEventPointType.PAGE.OBREMPON_PAGE_LAUNCH_START)

        loadLaunchConfigsAction()
    }

    /**
     * 获取时区
     */
    private fun loadObremponLaunchTimeZoneAction(){
        showObremponLoading()
        doHttpPostAction(LaunchApi.ILaunchTimeZoneApi(),object : IHttpCallback{
            override fun onRequestSuccess(data: JSONObject) {
                showObremponTimeZoneRequestData(data.optString("data"))
            }
            override fun onRequestError(error: JSONObject) {
            }
            override fun onRequestFinish() {
            }
        })
    }

    /**
     * 获取客服配置
     */
    private fun loadLaunchConfigsAction(){
        doHttpPostAction(LaunchApi.ILaunchConfigsApi(),object : IHttpCallback{
            override fun onRequestSuccess(data: JSONObject) {
                hideObremponLoading()
                val obj = data.optJSONObject("obj")
                //保存所有数据
                if (obj != null) {
                    ObremponConfigsHelper.insertObremponConfigData(obj.toString())
                }
                showLaunchIntentPage()
            }
            override fun onRequestError(error: JSONObject) {
            }
            override fun onRequestFinish() {
            }
        })
    }

    fun showLaunchIntentPage(){
        //是否显示引导页
        if (!ObremponSharedHelper.queryObremponSharedBoolean(ObremponSharedKey.OBREMPON_SHOW_GUIDE_PAGE)){
            showObremponLaunchGuidePage()
            return
        }

        //已登录 - 进入主页
        if (ObremponSharedHelper.queryObremponSharedBoolean(ObremponSharedKey.OBREMPON_LOGIN)){
            //初始化analysis lib 赋值 用户id 和 token
            ObremponAnalysisHelper.initAnalysisLibAtLoginSuccess()
            showObremponMainHomePage()
            return
        }
        //进入登录页面
        showObremponLaunchLoginPage()
    }

    /**
     * 进入引导页
     */
    private fun showObremponLaunchGuidePage() {
        onIntent(ObremponGuideAct::class.java)
        finish()
    }

    /**
     * 进入登录页
     */
    private fun showObremponLaunchLoginPage() {
        onIntent(ObremponLoginAct::class.java)
        finish()
    }

    /**
     * 进入主页
     */
    private fun showObremponMainHomePage() {
        onIntent(ObremponMainAct::class.java)
        finish()
    }

    override fun requestTryAgain() {
        super.requestTryAgain()
        takeObremponData()
    }

    override fun onDestroy() {
        super.onDestroy()
        doEventTrackAction(ObremponEventPointType.PAGE.OBREMPON_PAGE_LAUNCH_END)
    }
}